Skip to content

fabrics: avoid connect segfault for invalid param#3267

Merged
igaw merged 1 commit intolinux-nvme:masterfrom
martin-gpy:connect_segfault
Apr 16, 2026
Merged

fabrics: avoid connect segfault for invalid param#3267
igaw merged 1 commit intolinux-nvme:masterfrom
martin-gpy:connect_segfault

Conversation

@martin-gpy
Copy link
Copy Markdown
Contributor

The connect command segfaults if one passes an invalid param to it. For e.g.

nvme connect disconnect
required argument [--nqn | -n] not specified
Segmentation fault (core dumped)

Running gdb on the core revealed the segfault was due to dereferencing the fctx NULL pointer:

Core was generated by `nvme connect disconnect'.
Program terminated with signal SIGSEGV, Segmentation fault. libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
222 free(fctx->tls_key);
(gdb) where
libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
cleanup_nvmf_context (fctx=0x7ffd6f16ddf8) at ../util/cleanup.h:58
fabrics_connect (desc=, argc=, argv=0x7ffd6f16ee10) at ../fabrics.c:595
handle_plugin (argc=argc@entry=2, argv=argv@entry=0x7ffd6f16ee10, plugin=0x558480 ) at ../plugin.c:190
main (argc=3, argv=0x7ffd6f16ee08) at ../nvme.c:11313

Fix the same.

Fixes: 27af156 ("fabrics: allow tls key to be a pin")

The connect command segfaults if one passes an invalid param to it.
For e.g.

nvme connect disconnect
required argument [--nqn | -n] not specified
Segmentation fault (core dumped)

Running gdb on the core revealed the segfault was due to dereferencing
the fctx NULL pointer:

Core was generated by `nvme connect disconnect'.
Program terminated with signal SIGSEGV, Segmentation fault.
libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
222             free(fctx->tls_key);
(gdb) where
libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
cleanup_nvmf_context (fctx=0x7ffd6f16ddf8) at ../util/cleanup.h:58
fabrics_connect (desc=<optimized out>, argc=<optimized out>, argv=0x7ffd6f16ee10) at ../fabrics.c:595
handle_plugin (argc=argc@entry=2, argv=argv@entry=0x7ffd6f16ee10, plugin=0x558480 <builtin>) at ../plugin.c:190
main (argc=3, argv=0x7ffd6f16ee08) at ../nvme.c:11313

Fix the same.

Fixes: 27af156 ("fabrics: allow tls key to be a pin")

Signed-off-by: Martin George <marting@netapp.com>
@igaw igaw merged commit 0a2eb77 into linux-nvme:master Apr 16, 2026
28 of 29 checks passed
@igaw
Copy link
Copy Markdown
Collaborator

igaw commented Apr 16, 2026

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants